home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / programmers / misc / guicreator / demos / sound.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-20  |  32.6 KB  |  523 lines

  1. /*************************************************************************/
  2. /*                                                                       */
  3. /*   Includes                                                            */
  4. /*                                                                       */
  5. /*************************************************************************/
  6.  
  7. #include "Sound_Includes.h"
  8. #include "Sound.h"
  9.  
  10. /*************************************************************************/
  11. /*                                                                       */
  12. /*   Variables and Structures                                            */
  13. /*                                                                       */
  14. /*************************************************************************/
  15.  
  16. extern struct IntuitionBase   *IntuitionBase;
  17. extern struct GfxBase         *GfxBase;
  18.  
  19. extern struct Library *GadToolsBase ;
  20. extern struct Library *AslBase      ;
  21. extern struct Library *DataTypesBase;
  22.  
  23. /*************************************************************************/
  24. /*                                                                       */
  25. /*   Defines                                                             */
  26. /*                                                                       */
  27. /*************************************************************************/
  28.  
  29. #define RASTERX (GfxBase->DefaultFont->tf_XSize)
  30. #define RASTERY (GfxBase->DefaultFont->tf_YSize/2+4)
  31.  
  32. #define XSIZE(x)  ((x)*RASTERX)
  33. #define YSIZE(x)  ((x)*RASTERY)
  34.  
  35. #define XPOS(x)   (XSIZE(x)+customscreen->WBorLeft)
  36. #define YPOS(x)   (YSIZE(x)+customscreen->BarHeight+1)
  37.  
  38. #define ERROR_NO_WINDOW_OPENED      1001L
  39. #define ERROR_NO_PUBSCREEN_LOCKED   1002L
  40. #define ERROR_NO_GADGETS_CREATED    1003L
  41. #define ERROR_NO_VISUALINFO         1004L
  42. #define ERROR_NO_PICTURE_LOADED     1005L
  43. #define ERROR_NO_GADGETLIST_CREATED 1006L
  44. #define ERROR_NO_WINDOW_MENU        1007L
  45.  
  46.  
  47. struct SoundPrefsWindowData
  48.    {
  49.    BOOL    gd_Disabled_Gadget10;
  50.    BOOL    gd_Checked_Gadget10;
  51.    BOOL    gd_Disabled_Gadget11;
  52.    BOOL    gd_Checked_Gadget11;
  53.    BOOL    gd_Disabled_Gadget12;
  54.    UWORD   gd_Active_Gadget12;
  55.    STRPTR *gd_Labels_Gadget12;
  56.    BOOL    gd_Disabled_Gadget14;
  57.    UWORD   gd_Level_Gadget14;
  58.    UWORD   gd_Max_Gadget14;
  59.    UWORD   gd_Min_Gadget14;
  60.    BOOL    gd_Disabled_Gadget15;
  61.    UWORD   gd_Level_Gadget15;
  62.    UWORD   gd_Max_Gadget15;
  63.    UWORD   gd_Min_Gadget15;
  64.    BOOL    gd_Disabled_Gadget1;
  65.    UWORD   gd_Level_Gadget1;
  66.    UWORD   gd_Max_Gadget1;
  67.    UWORD   gd_Min_Gadget1;
  68.    BOOL    gd_Disabled_Gadget4;
  69.    char    gd_String_Gadget4[256];
  70.    BOOL    gd_Disabled_Gadget3;
  71.    BOOL    gd_Disabled_Gadget5;
  72.    BOOL    gd_Disabled_Gadget6;
  73.    BOOL    gd_Disabled_Gadget8;
  74.    BOOL    gd_Disabled_Gadget9;
  75.    };
  76.  
  77. /*************************************************************************/
  78. /*                                                                       */
  79. /*   Routines to handle gadgets                                          */
  80. /*                                                                       */
  81. /*************************************************************************/
  82.  
  83.  
  84. void HandleGadgetsSoundPrefsWindow(struct Window *win,struct Gadget *wingads[],ULONG gadgetid,ULONG messagecode,struct SoundPrefsWindowData *gadgetdata,APTR userdata)
  85. {
  86.    switch(gadgetid)
  87.       {
  88.       case CBID_Gadget10:
  89.          Gadget10Clicked(win,wingads,gadgetid,messagecode,userdata);
  90.          break;
  91.       case CBID_Gadget11:
  92.          Gadget11Clicked(win,wingads,gadgetid,messagecode,userdata);
  93.          break;
  94.       case CYID_Gadget12:
  95.          Gadget12Clicked(win,wingads,gadgetid,messagecode,userdata);
  96.          break;
  97.       case SLID_Gadget14:
  98.          Gadget14Clicked(win,wingads,gadgetid,messagecode,userdata);
  99.          break;
  100.       case SLID_Gadget15:
  101.          Gadget15Clicked(win,wingads,gadgetid,messagecode,userdata);
  102.          break;
  103.       case SLID_Gadget1:
  104.          Gadget1Clicked(win,wingads,gadgetid,messagecode,userdata);
  105.          break;
  106.       case STID_Gadget4:
  107.          Gadget4Clicked(win,wingads,gadgetid,messagecode,userdata);
  108.          break;
  109.       case BTID_Gadget3:
  110.          Gadget3Clicked(win,wingads,gadgetid,messagecode,userdata);
  111.          break;
  112.       case BTID_Gadget5:
  113.          Gadget5Clicked(win,wingads,gadgetid,messagecode,userdata);
  114.          break;
  115.       case BTID_Gadget6:
  116.          Gadget6Clicked(win,wingads,gadgetid,messagecode,userdata);
  117.          break;
  118.       case BTID_Gadget8:
  119.          Gadget8Clicked(win,wingads,gadgetid,messagecode,userdata);
  120.          break;
  121.       case BTID_Gadget9:
  122.          Gadget9Clicked(win,wingads,gadgetid,messagecode,userdata);
  123.          break;
  124.       };
  125. }
  126.  
  127.  
  128. /*************************************************************************/
  129. /*                                                                       */
  130. /*   Routines to create gadgets                                          */
  131. /*                                                                       */
  132. /*************************************************************************/
  133.  
  134.  
  135. struct Gadget *CreateGadgetsSoundPrefsWindow(struct Gadget **gadgetlist,struct NewGadget newgad[],struct Gadget *wingads[],struct SoundPrefsWindowData *gadgetdata)
  136. {
  137.    struct Gadget *gadget=CreateContext(gadgetlist);
  138.    if (gadget)
  139.       {
  140.       wingads[LAID_Gadget1]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget1],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  141.       wingads[LAID_Gadget2]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget2],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  142.       wingads[LAID_Gadget3]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget3],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  143.       wingads[LAID_Gadget4]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget4],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  144.       wingads[LAID_Gadget6]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget6],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  145.       wingads[LAID_Gadget8]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget8],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  146.       wingads[LAID_Gadget9]=gadget=CreateGadget(TEXT_KIND,gadget,&newgad[LAID_Gadget9],GT_Underscore,'_',GTTX_Border,FALSE,TAG_END);
  147.       wingads[CBID_Gadget10]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget10],GA_Disabled,gadgetdata->gd_Disabled_Gadget10,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget10,TAG_END);
  148.       wingads[CBID_Gadget11]=gadget=CreateGadget(CHECKBOX_KIND,gadget,&newgad[CBID_Gadget11],GA_Disabled,gadgetdata->gd_Disabled_Gadget11,GTCB_Scaled,TRUE,GTCB_Checked,gadgetdata->gd_Checked_Gadget11,TAG_END);
  149.       wingads[CYID_Gadget12]=gadget=CreateGadget(CYCLE_KIND,gadget,&newgad[CYID_Gadget12],GA_Disabled,gadgetdata->gd_Disabled_Gadget12,GTCY_Labels,gadgetdata->gd_Labels_Gadget12,GTCY_Active,gadgetdata->gd_Active_Gadget12,TAG_END);
  150.       wingads[SLID_Gadget14]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget14],GA_Disabled,gadgetdata->gd_Disabled_Gadget14,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget14,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget14,GTSL_Min,gadgetdata->gd_Min_Gadget14,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  151.       wingads[SLID_Gadget15]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget15],GA_Disabled,gadgetdata->gd_Disabled_Gadget15,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget15,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget15,GTSL_Min,gadgetdata->gd_Min_Gadget15,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  152.       wingads[SLID_Gadget1]=gadget=CreateGadget(SLIDER_KIND,gadget,&newgad[SLID_Gadget1],GA_Disabled,gadgetdata->gd_Disabled_Gadget1,GA_Immediate,TRUE,GA_RelVerify,TRUE,GTSL_Level,gadgetdata->gd_Level_Gadget1,GTSL_LevelFormat,"%ld",GTSL_LevelPlace,PLACETEXT_RIGHT,GTSL_Max,gadgetdata->gd_Max_Gadget1,GTSL_Min,gadgetdata->gd_Min_Gadget1,GTSL_MaxLevelLen,5,PGA_Freedom,LORIENT_HORIZ,TAG_END);
  153.       wingads[STID_Gadget4]=gadget=CreateGadget(STRING_KIND,gadget,&newgad[STID_Gadget4],GA_Disabled,gadgetdata->gd_Disabled_Gadget4,GA_TabCycle,TRUE,GTST_MaxChars,256,GTST_String,gadgetdata->gd_String_Gadget4,GA_TabCycle,TRUE,STRINGA_ExitHelp,TRUE,STRINGA_Justification,GACT_STRINGLEFT,STRINGA_ReplaceMode,FALSE,TAG_END);
  154.       wingads[BTID_Gadget3]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget3],GA_Disabled,gadgetdata->gd_Disabled_Gadget3,GT_Underscore,'_',TAG_END);
  155.       wingads[BTID_Gadget5]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget5],GA_Disabled,gadgetdata->gd_Disabled_Gadget5,GT_Underscore,'_',TAG_END);
  156.       wingads[BTID_Gadget6]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget6],GA_Disabled,gadgetdata->gd_Disabled_Gadget6,GT_Underscore,'_',TAG_END);
  157.       wingads[BTID_Gadget8]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget8],GA_Disabled,gadgetdata->gd_Disabled_Gadget8,GT_Underscore,'_',TAG_END);
  158.       wingads[BTID_Gadget9]=gadget=CreateGadget(BUTTON_KIND,gadget,&newgad[BTID_Gadget9],GA_Disabled,gadgetdata->gd_Disabled_Gadget9,GT_Underscore,'_',TAG_END);
  159.       return gadget;
  160.       }
  161.    else return NULL;
  162. }
  163.  
  164.  
  165. /*************************************************************************/
  166. /*                                                                       */
  167. /*   Routines to handle windows                                          */
  168. /*                                                                       */
  169. /*************************************************************************/
  170.  
  171.  
  172. void HandleSoundPrefsWindow(struct Screen *customscreen,LONG left,LONG top,APTR userdata)
  173. {
  174.    APTR visualinfo=GetVisualInfo(customscreen,TAG_DONE);
  175.    if (visualinfo)
  176.       {
  177.       struct Gadget  *gadgetlist = NULL;
  178.       struct Menu    *menustrip  = NULL;
  179.       ULONG height=22,width=42,maxheight=1024,maxwidth=1280;
  180.       ULONG bevelcount  = 1;
  181.  
  182.       struct Gadget *wingads[19];
  183.  
  184.       STRPTR title                  = "Sound Preferences";
  185.       struct Window     *win        = NULL;
  186.  
  187.       struct TextAttr   textattr    = { GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name,GfxBase->DefaultFont->tf_YSize,FS_NORMAL,FPF_DISKFONT };
  188.  
  189.       struct NewGadget  newgad[]    = {
  190.                                         XPOS(2),YPOS(2),XSIZE(15),YSIZE(2),"_Flash Display:",&textattr,LAID_Gadget1,PLACETEXT_IN,visualinfo,NULL,
  191.                                         XPOS(25),YPOS(2),XSIZE(12),YSIZE(2),"_Make Sound:",&textattr,LAID_Gadget2,PLACETEXT_IN,visualinfo,NULL,
  192.                                         XPOS(2),YPOS(4),XSIZE(15),YSIZE(2),"Sound _Type   :",&textattr,LAID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  193.                                         XPOS(2),YPOS(6),XSIZE(15),YSIZE(2),"Sound _Volume :",&textattr,LAID_Gadget4,PLACETEXT_IN,visualinfo,NULL,
  194.                                         XPOS(2),YPOS(8),XSIZE(15),YSIZE(2),"Sound _Pitch  :",&textattr,LAID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  195.                                         XPOS(2),YPOS(10),XSIZE(15),YSIZE(2),"_Beep Length  :",&textattr,LAID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  196.                                         XPOS(2),YPOS(12),XSIZE(15),YSIZE(2),"Sample _Name  :",&textattr,LAID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  197.                                         XPOS(17),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr,CBID_Gadget10,PLACETEXT_ABOVE,visualinfo,NULL,
  198.                                         XPOS(37),YPOS(2),XSIZE(3),YSIZE(2),NULL,&textattr,CBID_Gadget11,PLACETEXT_ABOVE,visualinfo,NULL,
  199.                                         XPOS(17),YPOS(4),XSIZE(23),YSIZE(2),NULL,&textattr,CYID_Gadget12,PLACETEXT_ABOVE,visualinfo,NULL,
  200.                                         XPOS(17),YPOS(6),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget14,PLACETEXT_LEFT,visualinfo,NULL,
  201.                                         XPOS(17),YPOS(8),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget15,PLACETEXT_LEFT,visualinfo,NULL,
  202.                                         XPOS(17),YPOS(10),XSIZE(18),YSIZE(2),NULL,&textattr,SLID_Gadget1,PLACETEXT_LEFT,visualinfo,NULL,
  203.                                         XPOS(17),YPOS(12),XSIZE(21),YSIZE(2),NULL,&textattr,STID_Gadget4,PLACETEXT_LEFT,visualinfo,NULL,
  204.                                         XPOS(38),YPOS(12),XSIZE(2),YSIZE(2),"«",&textattr,BTID_Gadget3,PLACETEXT_IN,visualinfo,NULL,
  205.                                         XPOS(2),YPOS(15),XSIZE(38),YSIZE(2),"Test S_ound",&textattr,BTID_Gadget5,PLACETEXT_IN,visualinfo,NULL,
  206.                                         XPOS(1),YPOS(19),XSIZE(12),YSIZE(2),"_Save",&textattr,BTID_Gadget6,PLACETEXT_IN,visualinfo,NULL,
  207.                                         XPOS(15),YPOS(19),XSIZE(12),YSIZE(2),"_Use",&textattr,BTID_Gadget8,PLACETEXT_IN,visualinfo,NULL,
  208.                                         XPOS(29),YPOS(19),XSIZE(12),YSIZE(2),"_Cancel",&textattr,BTID_Gadget9,PLACETEXT_IN,visualinfo,NULL,
  209.                                       };
  210.       STRPTR            LA_Gadget12[]  = { "Beep","Sampled Sound",NULL };
  211.  
  212.  
  213.       struct SoundPrefsWindowData gadgetdata = {
  214.                                         /* belongs to a checkbox gadget */
  215.                                         FALSE,
  216.                                         TRUE,
  217.                                         /* belongs to a checkbox gadget */
  218.                                         FALSE,
  219.                                         TRUE,
  220.                                         /* belongs to a cycle gadget */
  221.                                         FALSE,
  222.                                         1,
  223.                                         (STRPTR *)&LA_Gadget12[0],
  224.                                         /* belongs to a slider gadget */
  225.                                         FALSE,
  226.                                         32,
  227.                                         64,
  228.                                         0,
  229.                                         /* belongs to a slider gadget */
  230.                                         FALSE,
  231.                                         1500,
  232.                                         3000,
  233.                                         1,
  234.                                         /* belongs to a slider gadget */
  235.                                         TRUE,
  236.                                         50,
  237.                                         100,
  238.                                         1,
  239.                                         /* belongs to a string gadget */
  240.                                         FALSE,
  241.                                         (char *)"SYS:Prefs/Beep.IFF",
  242.                                         /* belongs to a button */
  243.                                         FALSE,
  244.                                         /* belongs to a button */
  245.                                         FALSE,
  246.                                         /* belongs to a button */
  247.                                         FALSE,
  248.                                         /* belongs to a button */
  249.                                         FALSE,
  250.                                         /* belongs to a button */
  251.                                         FALSE,
  252.                                       };
  253.  
  254.  
  255.       struct BevelFrame bevels[]    = {
  256.                                         XPOS(1),YPOS(1),XSIZE(40),YSIZE(17),"Sound Preferences",2,
  257.                                       };
  258.  
  259.  
  260.       struct NewMenu    menu[]      = { NM_TITLE, "Program"    , 0 ,0,0,0,
  261.                                         NM_ITEM , "About"      ,"A",0,0,0,
  262.                                         NM_END  , NULL         , 0 ,0,0,0 };
  263.  
  264.       height= YSIZE(height);
  265.       width = XSIZE(width) ;
  266.       if (left==-1) left  = (customscreen->Width-width)/2;
  267.       if (top ==-1) top   = (customscreen->Height-height)/2;
  268.  
  269.       if (CreateGadgetsSoundPrefsWindow(&gadgetlist,newgad,wingads,&gadgetdata)!=NULL)
  270.          {
  271.          if (height>customscreen->Height || width>customscreen->Width) GUICreatorErrorReport(NULL,ERROR_SCREEN_TOO_SMALL);
  272.          win=OpenWindowTags(NULL,WA_Activate,         TRUE,
  273.                                  WA_CloseGadget,      TRUE,
  274.                                  WA_DepthGadget,      TRUE,
  275.                                  WA_SizeGadget,       FALSE,
  276.                                  WA_DragBar,          TRUE,
  277.                                  WA_Gadgets,          gadgetlist,
  278.                                  WA_InnerHeight,      height,
  279.                                  WA_InnerWidth,       width,
  280.                                  WA_IDCMP,            IDCMP_CLOSEWINDOW|IDCMP_MENUPICK|IDCMP_NEWSIZE|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_GADGETUP|BUTTONIDCMP|STRINGIDCMP|CHECKBOXIDCMP|CYCLEIDCMP|SLIDERIDCMP,
  281.                                  WA_Left,             left,
  282.                                  WA_Top,              top,
  283.                                  WA_MaxHeight,        maxheight,
  284.                                  WA_MinHeight,        height,
  285.                                  WA_MaxWidth,         maxwidth,
  286.                                  WA_MinWidth,         width,
  287.                                  WA_SizeBRight,       FALSE,
  288.                                  WA_SizeBBottom,      FALSE,
  289.                                  WA_SmartRefresh,     TRUE,
  290.                                  WA_CustomScreen,     customscreen,
  291.                                  WA_Title,            title,
  292.                                  WA_NewLookMenus,     TRUE,
  293.                                  TAG_END);
  294.          if (win)
  295.             {
  296.             menustrip=CreateMenus(menu,GTMN_NewLookMenus,TRUE,TAG_END);
  297.             if (menustrip)
  298.                {
  299.                if (LayoutMenus(menustrip,visualinfo,GTMN_NewLookMenus,TRUE,TAG_END))
  300.                   {
  301.                   if (SetMenuStrip(win,menustrip))
  302.                      {
  303.                      struct IntuiMessage  *imessage   = NULL;
  304.                      struct Gadget        *idcmpgad   = NULL;
  305.                      ULONG  idcmpclass                = 0;
  306.                      UWORD  messagecode               = 0;
  307.                      BOOL   running                   = TRUE;
  308.                      ULONG  signal                    = 0;
  309.                      ULONG  longpointer1              = 0;
  310.                      ULONG  longpointer2              = 0;
  311.  
  312.                      SetFont(win->RPort,GfxBase->DefaultFont);
  313.                      CreateBevelFrames(win,visualinfo,bevelcount,bevels);
  314.  
  315.                      GT_RefreshWindow(win,NULL);
  316.  
  317.                      do
  318.                         {
  319.                         if (running) signal=Wait(SIGBREAKF_CTRL_C | 1L << win->UserPort->mp_SigBit);
  320.                         if (signal & SIGBREAKF_CTRL_C) running=FALSE;
  321.                         while (running && (imessage=GT_GetIMsg(win->UserPort)))
  322.                            {
  323.                            idcmpgad=(struct Gadget *)imessage->IAddress;
  324.                            idcmpclass=imessage->Class;
  325.                            messagecode =imessage->Code;
  326.  
  327.                            GT_ReplyIMsg(imessage);
  328.  
  329.                            switch(idcmpclass)
  330.                               {
  331.                               case IDCMP_REFRESHWINDOW:
  332.                                    GT_BeginRefresh(win);
  333.                                    GT_EndRefresh(win,TRUE);
  334.                                    break;
  335.                               case IDCMP_MENUPICK:
  336.                                    switch(MENUNUM(messagecode))
  337.                                       {
  338.                                       case 0:
  339.                                          switch (ITEMNUM(messagecode))
  340.                                             {
  341.                                             case 0:
  342.                                                About(win);
  343.                                                break;
  344.                                             }
  345.                                          /* end-switch */
  346.                                          break;
  347.                                       }
  348.                                    /* end-switch */
  349.                                    break;
  350.                               case IDCMP_VANILLAKEY:
  351.                                    switch(messagecode)
  352.                                       {
  353.                                       case 'f':
  354.                                            GT_GetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GA_Disabled,&longpointer2,GTCB_Checked,&longpointer1,TAG_END);
  355.                                            if (longpointer2==0)
  356.                                               {
  357.                                               GT_SetGadgetAttrs(wingads[CBID_Gadget10],win,NULL,GTCB_Checked,(longpointer1==0)?TRUE:FALSE,TAG_END);
  358.                                               HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget10,(longpointer1==0)?1:0,&gadgetdata,userdata);
  359.                                               }
  360.                                            break;
  361.                                       case 'm':
  362.                                            GT_GetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GA_Disabled,&longpointer2,GTCB_Checked,&longpointer1,TAG_END);
  363.                                            if (longpointer2==0)
  364.                                               {
  365.                                               GT_SetGadgetAttrs(wingads[CBID_Gadget11],win,NULL,GTCB_Checked,(longpointer1==0)?TRUE:FALSE,TAG_END);
  366.                                               HandleGadgetsSoundPrefsWindow(win,wingads,CBID_Gadget11,(longpointer1==0)?1:0,&gadgetdata,userdata);
  367.                                               }
  368.                                            break;
  369.                                       case 't':
  370.                                            GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  371.                                            if (longpointer1==0)
  372.                                               {
  373.                                               GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  374.                                               if (++longpointer1==2) longpointer1=0;
  375.                                               GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  376.                                               HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  377.                                               }
  378.                                            break;
  379.                                       case 'T':
  380.                                            GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  381.                                            if (longpointer1==0)
  382.                                               {
  383.                                               GT_GetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,&longpointer1,TAG_END);
  384.                                               if (longpointer1==0) longpointer1=2;
  385.                                               longpointer1--;
  386.                                               GT_SetGadgetAttrs(wingads[CYID_Gadget12],win,NULL,GTCY_Active,longpointer1,TAG_END);
  387.                                               HandleGadgetsSoundPrefsWindow(win,wingads,CYID_Gadget12,longpointer1,&gadgetdata,userdata);
  388.                                               }
  389.                                            break;
  390.                                       case 'v':
  391.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  392.                                            if (longpointer1==0)
  393.                                               {
  394.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  395.                                               if (longpointer2<longpointer1)
  396.                                                  {
  397.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  398.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  399.                                                  }
  400.                                               }
  401.                                            break;
  402.                                       case 'V':
  403.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  404.                                            if (longpointer1==0)
  405.                                               {
  406.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  407.                                               if (longpointer2>longpointer1)
  408.                                                  {
  409.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget14],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  410.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget14,longpointer2,&gadgetdata,userdata);
  411.                                                  }
  412.                                               }
  413.                                            break;
  414.                                       case 'p':
  415.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  416.                                            if (longpointer1==0)
  417.                                               {
  418.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  419.                                               if (longpointer2<longpointer1)
  420.                                                  {
  421.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  422.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  423.                                                  }
  424.                                               }
  425.                                            break;
  426.                                       case 'P':
  427.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  428.                                            if (longpointer1==0)
  429.                                               {
  430.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  431.                                               if (longpointer2>longpointer1)
  432.                                                  {
  433.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget15],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  434.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget15,longpointer2,&gadgetdata,userdata);
  435.                                                  }
  436.                                               }
  437.                                            break;
  438.                                       case 'b':
  439.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  440.                                            if (longpointer1==0)
  441.                                               {
  442.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Max,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  443.                                               if (longpointer2<longpointer1)
  444.                                                  {
  445.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,++longpointer2,TAG_END);
  446.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  447.                                                  }
  448.                                               }
  449.                                            break;
  450.                                       case 'B':
  451.                                            GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  452.                                            if (longpointer1==0)
  453.                                               {
  454.                                               GT_GetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Min,&longpointer1,GTSL_Level,&longpointer2,TAG_END);
  455.                                               if (longpointer2>longpointer1)
  456.                                                  {
  457.                                                  GT_SetGadgetAttrs(wingads[SLID_Gadget1],win,NULL,GTSL_Level,--longpointer2,TAG_END);
  458.                                                  HandleGadgetsSoundPrefsWindow(win,wingads,SLID_Gadget1,longpointer2,&gadgetdata,userdata);
  459.                                                  }
  460.                                               }
  461.                                            break;
  462.                                       case 'n':
  463.                                            GT_GetGadgetAttrs(wingads[STID_Gadget4],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  464.                                            if (longpointer1==0) ActivateGadget(wingads[STID_Gadget4],win,NULL);
  465.                                            break;
  466.                                       case 'N':
  467.                                            GT_GetGadgetAttrs(wingads[BTID_Gadget3],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  468.                                            if (longpointer1==0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget3,messagecode,&gadgetdata,userdata);
  469.                                            break;
  470.                                       case 'o':
  471.                                            GT_GetGadgetAttrs(wingads[BTID_Gadget5],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  472.                                            if (longpointer1==0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget5,messagecode,&gadgetdata,userdata);
  473.                                            break;
  474.                                       case 's':
  475.                                            GT_GetGadgetAttrs(wingads[BTID_Gadget6],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  476.                                            if (longpointer1==0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget6,messagecode,&gadgetdata,userdata);
  477.                                            break;
  478.                                       case 'u':
  479.                                            GT_GetGadgetAttrs(wingads[BTID_Gadget8],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  480.                                            if (longpointer1==0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget8,messagecode,&gadgetdata,userdata);
  481.                                            break;
  482.                                       case 'c':
  483.                                            GT_GetGadgetAttrs(wingads[BTID_Gadget9],win,NULL,GA_Disabled,&longpointer1,TAG_END);
  484.                                            if (longpointer1==0) HandleGadgetsSoundPrefsWindow(win,wingads,BTID_Gadget9,messagecode,&gadgetdata,userdata);
  485.                                            break;
  486.                                       case 27:
  487.                                          running=FALSE;
  488.                                          break;
  489.                                       }
  490.                                    break;
  491.                               case IDCMP_CLOSEWINDOW:
  492.                                    running=FALSE;
  493.                                    break;
  494.                                 case IDCMP_GADGETUP:
  495.                                 case MXIDCMP:
  496.                                    HandleGadgetsSoundPrefsWindow(win,wingads,idcmpgad->GadgetID,messagecode,&gadgetdata,userdata);
  497.                                    break;
  498.                               }
  499.                            /* end-switch */
  500.                            }
  501.                         /* end-while */
  502.                         }
  503.                      while (running);
  504.                      ClearMenuStrip(win);
  505.                      }
  506.                   else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  507.                   }
  508.                else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  509.                FreeMenus(menustrip);
  510.                }
  511.             else GUICreatorErrorReport(win,ERROR_NO_WINDOW_MENU);
  512.             if (win) CloseWindow(win);
  513.             }
  514.          else GUICreatorErrorReport(win,ERROR_NO_WINDOW_OPENED);
  515.          if (gadgetlist) FreeGadgets(gadgetlist);
  516.          }
  517.       else GUICreatorErrorReport(NULL,ERROR_NO_GADGETS_CREATED);
  518.       if (visualinfo) FreeVisualInfo(visualinfo);
  519.       }
  520.    else GUICreatorErrorReport(NULL,ERROR_NO_VISUALINFO);
  521. }
  522.  
  523.